package com.tedu;

/**
 * 写一个算法将橘子按照一定分隔符倒置后返回
 * 输入"I love the game" 输出"game the love I"
 */
public class Reversion {
    public static void main(String[] args) {
        String str = "I love the game";
        String sep = " ";
        String dest = inverseSentence(str,sep);
        System.out.println(dest);
    }

    private static String inverseSentence(String in, String sep) {
//        创建StringBuilder对象
        StringBuilder builder = new StringBuilder();
        int end = in.length();//截取字符串时结束下标的初始值
        int index = in.length()-1;//index表示从字符串的最后开始逆序查找，
        // 后续找到分隔符后，让index指向分隔符的下标
        while ((index= in.lastIndexOf(sep,index))!=-1){
            //确定截取的起始下标
            int start = index+sep.length();
            String subStr = in.substring(start,end);
            builder.append(subStr).append(sep);
//            改变end的位置
            end=index;
//            改变index的值，在此逆序查找分隔符
            index = -1;
        }
//            截取字符串中第一部分(第一个分隔符前的内容)
            String first = in.substring(0,end);
            builder.append(first);
            return builder.toString();
    }
}
